Several 3D-HEVC coding tools utilize depth information from depth layers for decoding of texture layers. For this, depth values of a depth layer of a current view are converted to disparities related to another view. Conversion is performed by scaling and offsetting. Scale and offsets are signaling in the VPS (Video Parameter Set) when constant for the video sequences. When scale and offsets vary over time, the signaling is performed in the slice headers.
Scale and offset depend on spatial position of the other view relative to the current view. For this, multiple scale and offset pairs are signaled for a current view, such that each pair is related to one of the views preceding the current view in coding order.
E.g., assuming that the bitstream includes views with view order indices 0, 2, 4, intention of the current design would be to signal the following shifts and offsets:                for view 0: none        for view 2: related to view 0        for view 4: related to view 0 and related to view 2        
In the current design [2] parsing of scale and offsets is performed, e.g. in the VPS in two loops. This is exemplary indicated in FIG. 11.
NumViews specifies the number of views (e.g., 3 in the above example) and ViewOldxList maps the index m, which indicates the positions of a pair in the bitstream, to a view order index (e.g. ViewOldxList is [0 2 4], in the above example).
ViewOldxList is derived in the VPS extension by iterating over all layers present in the bitstream and appending the view order index of a layer to the end of ViewOldxList, when it is not yet present in ViewOldxList. An exemplary syntax of the iteration is shown in FIG. 12.
Assuming, e.g. following VPS information:                =0; IId=0; ViewOrderIdx[IId]=0; VpsDepthFlag[IId]=0        i=1; IId=1; ViewOrderIdx[IId]=0; VpsDepthFlag[IId]=1        i=2; IId=2; ViewOrderIdx[IId]=2; VpsDepthFlag[IId]=0        i=3; IId=3; ViewOrderIdx[IId]=2; VpsDepthFlag[IId]=1        i=4; IId=4; ViewOrderIdx[IId]=4; VpsDepthFlag[IId]=0        i=5; IId=5; ViewOrderIdx[IId]=4; VpsDepthFlag[IId]=1would result in ViewOldxList={0, 2, 4}.        
Note that, since the current 3D-HEVC specification needs the depth layer of a view to directly follow the texture layer, the order of values in ViewOldxList corresponds to the coding order of views, when texture and depth is present for all layers.
A first issue of the current design refers to auxiliary pictures. The 3D-HEVC allows the presence of auxiliary picture layers interleaved with primary picture layers for backwards compatibility with MV-HEVC.
The following VPS information for a bitstream including an auxiliary layer                i=0; IId=0; ViewOrderIdx[IId]=0; VpsDepthFlag[IId]=0; AuxId[IId]=0        i=1; IId=1; ViewOrderIdx[IId]=4; VpsDepthFlag[IId]=0; AuxId[IId]=1        i=2; IId=2; ViewOrderIdx[IId]=0; VpsDepthFlag[IId]=1; AuxId[IId]=0        i=3; IId=3; ViewOrderIdx[IId]=2; VpsDepthFlag[IId]=0; AuxId[IId]=0        i=4; IId=4; ViewOrderIdx[IId]=2; VpsDepthFlag[IId]=1; AuxId[IId]=0        i=5; IId=5; ViewOrderIdx[IId]=4; VpsDepthFlag[IId]=0; AuxId[IId]=0        i=6; IId=6; ViewOrderIdx[IId]=4; VpsDepthFlag[IId]=1; AuxId[IId]=0would result in ViewOldxList={0, 4, 2} and hence to the presence of following scale and offsets:        for view 0: none        for view 4: related to view 0        for view 2: related to view 0 and related to view 4        
It can be seen that for view 4, scale and offset values to view 2 are missing. However, decoding of texture layer 5 might need scale and offset values related to view 2, when referring to the preceding depth layer 4.
A second issue of the current design refers to bitstream extraction and/or VPS rewriting. Scale and offset values can be signaled in the VPS or in the slice headers. However, the number of signaled scale and offset pairs, as well as the views the pairs are related to, depend currently on ViewOldxList, which depends on the layers present in bitstream as signaled in the VPS. Thus, when layers are discarded from the bitstream (and the VPS is rewritten to signal this), the current design needs also rewriting of all slice segment headers, which is undesirable.
E.g., assuming that ViewOldxList is equal to {0, 2, 4}, and that views 2 and 4 only depend on view 0, and that view 2 is discarded and the VPS is rewritten, also rewriting of all slice segments header of layers of view 4 would be involved to remove camera parameters related to view 2.